// parking.js - 停车场相关API
import axios from '@/plugins/axios'

/**
 * 获取停车场列表
 * @param {Object} params 查询参数 { page, size, name, status }
 * @returns {Promise} 返回停车场列表
 */
export function getParkingLotList(params = {}) {
  return axios.get('/api/admin/parking-lots', { params })
}

/**
 * 获取停车场详情
 * @param {Number} id 停车场ID
 * @returns {Promise} 返回停车场详情
 */
export function getParkingLotDetail(id) {
  return axios.get(`/api/admin/parking-lots/${id}`)
}

/**
 * 添加停车场
 * @param {Object} data 停车场数据
 * @returns {Promise} 返回新增的停车场
 */
export function addParkingLot(data) {
  return axios.post('/api/admin/parking-lots', data)
}

/**
 * 更新停车场
 * @param {Number} id 停车场ID
 * @param {Object} data 更新的数据
 * @returns {Promise} 返回更新后的停车场
 */
export function updateParkingLot(id, data) {
  return axios.put(`/api/admin/parking-lots/${id}`, data)
}

/**
 * 删除停车场
 * @param {Number} id 停车场ID
 * @returns {Promise} 返回操作结果
 */
export function deleteParkingLot(id) {
  return axios.delete(`/api/admin/parking-lots/${id}`)
}

/**
 * 获取停车场车位列表
 * @param {Object} params 查询参数
 * @returns {Promise} 返回车位列表
 */
export function getParkingSpaceList(params = {}) {
  return axios.get('/api/admin/parking-spaces', { params })
}

/**
 * 获取车位详情
 * @param {Number} id 车位ID
 * @returns {Promise} 返回车位详情
 */
export function getParkingSpaceDetail(id) {
  return axios.get(`/api/admin/parking-spaces/${id}`)
}

/**
 * 获取特定停车场的车位
 * @param {Number} parkingLotId 停车场ID
 * @returns {Promise} 返回该停车场的所有车位
 */
export function getParkingSpacesByLotId(parkingLotId) {
  return axios.get(`/api/admin/parking-spaces/by-lot/${parkingLotId}`)
}

/**
 * 添加车位
 * @param {Object} data 车位数据
 * @returns {Promise} 返回新增的车位
 */
export function addParkingSpace(data) {
  return axios.post('/api/admin/parking-spaces', data)
}

/**
 * 更新车位
 * @param {Number} id 车位ID
 * @param {Object} data 更新的数据
 * @returns {Promise} 返回更新后的车位
 */
export function updateParkingSpace(id, data) {
  return axios.put(`/api/admin/parking-spaces/${id}`, data)
}

/**
 * 删除车位
 * @param {Number} id 车位ID
 * @returns {Promise} 返回操作结果
 */
export function deleteParkingSpace(id) {
  return axios.delete(`/api/admin/parking-spaces/${id}`)
}

/**
 * 批量添加车位
 * @param {Object} data 批量添加参数
 * @returns {Promise} 返回新增的车位列表
 */
export function batchAddParkingSpaces(data) {
  return axios.post('/api/admin/parking-spaces/batch', null, { params: data })
}

/**
 * 检查车位编号是否存在
 * @param {Object} params 查询参数
 * @returns {Promise} 返回检查结果
 */
export function checkSpaceNumberExists(params) {
  return axios.get('/api/admin/parking-spaces/check-space-number', { params })
}

/**
 * 获取停车场统计信息
 * @param {Number} id 停车场ID
 * @returns {Promise} 返回统计信息
 */
export function getParkingLotStats(id) {
  return axios.get(`/api/admin/parking-lots/${id}/stats`)
}
